机械手自动化程序0915.docx |
您所在的位置:网站首页 › act z15答案 › 机械手自动化程序0915.docx |
机械手自动化程序0915.docx 《机械手自动化程序0915.docx》由会员分享,可在线阅读,更多相关《机械手自动化程序0915.docx(32页珍藏版)》请在冰豆网上搜索。 机械手自动化程序0915 1、主程序main &ACCESSRVP1 &REL1 &PARAMDISKPATH=KRC: \R1\Program DEFPro_main() INTl ;FOLDINI;%{PE} ;FOLDBASISTECHINI GLOBALINTERRUPTDECL3WHEN$STOPMESS==TRUEDOIR_STOPM() INTERRUPTON3 BAS(#INITMOV,0) ;ENDFOLD(BASISTECHINI) ;FOLDUSERINI ;Makeyourmodificationshere ;ENDFOLD(USERINI) GLOBALINTERRUPTDECL4WHEN$IN[10]==FALSEDOItrpt1() GLOBALINTERRUPTDECL5WHEN$IN[11]==FALSEDOItrpt1() INTERRUPTDECL6WHEN$IN[9]==TRUEDOItrpt1();地轨异常进入中断 INTERRUPTON6;开地轨监视中断6 IFNOTGripper_ChkStatus(1,"C")THEN Gripper_SetStatus(1,"O") Part0InLeft=FALSE Part2InLeft=FALSE ENDIF IFNOTGripper_ChkStatus(2,"C")THEN Gripper_SetStatus(2,"O") Part1InRight=FALSE ENDIF FORl=1TO14 $OUT[l]=FALSE ENDFOR;此循环语句在初始化时把所有端口清零复位。 IF$IN[5]THEN Machine1_OnlyDrop=TRUE Machine2_OnlyDrop=TRUE;机台1有首件信号时,机台1与机台2第一次响应只放标志位置1 ELSE Machine1_OnlyDrop=FALSE Machine2_OnlyDrop=FALSE ENDIF $FLAG[8]=FALSE;FLAG[8]是干什么用的? ;ENDFOLD(INI);初始化完成 $OV_PRO=70;限定系统运行速度 ;FOLDPTPHOMEVel=100%DEFAULT;%{PE}%R8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P1: PTP,2: HOME,3: 5: 100,7: DEFAULT $BWDSTART=FALSE PDAT_ACT=PDEFAULT FDAT_ACT=FHOME BAS(#PTP_PARAMS,100) $H_POS=XHOME PTPXHOME ;ENDFOLD IF$IN_HOMETHEN $OUT[5]=FALSE $OUT[8]=FALSE $OUT[11]=FALSE ENDIF LOOP WAITSEC0.05 IF$IN[1]ANDNOTPart0InLeftANDGripper_ChkStatus(3,"O")THENToPick_Search() ENDIF IFPart0InLeftAND($IN[3]ORMachine1_OnlyDrop)ANDGripper_ChkStatus(1,"C")ANDGripper_ChkStatus(2,"O")THEN Machine1() ENDIF IFPart1InRightAND($IN[6]ORMachine2_OnlyDrop)ANDGripper_ChkStatus(2,"C")ANDGripper_ChkStatus(1,"O")THEN Machine2() ENDIF IFPart2InLeftAND($IN[8]ORMachine3_OnlyDrop)ANDGripper_ChkStatus(1,"C")THEN Machine3() ENDIF ENDLOOP END DEFItrpt1() HALT BRAKE END 2、取料程序(采用中断的方法自动探料,完成取料作业) &ACCESSRVO2 &REL1 &PARAMDISKPATH=KRC: \R1\Program DEFToPick_Search() ;FOLDINI;%{PE} ;FOLDBASISTECHINI GLOBALINTERRUPTDECL3WHEN$STOPMESS==TRUEDOIR_STOPM();单独用了一个系统中断? INTERRUPTON3 BAS(#INITMOV,0) ;ENDFOLD(BASISTECHINI) ;FOLDUSERINI ;Makeyourmodificationshere ;ENDFOLD(USERINI) ;ENDFOLD(INI) INTERRUPTDECL1WHEN$IN[10]==TRUEDOFOUND() SevenAxis_Run (1) GOTOMARK ;FOLDPTPP1CONTVel=100%PDAT2Tool[1]Base[0];%{PE}%R8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P1: PTP,2: P1,3: C_DIS,5: 100,7: PDAT2 $BWDSTART=FALSE PDAT_ACT=PPDAT2 FDAT_ACT=FP1 BAS(#PTP_PARAMS,100) PTPXP1C_DIS ;ENDFOLD ;FOLDPTPP3CONTVel=100%PDAT8Tool[1]Base[0];%{PE}%R8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P1: PTP,2: P3,3: C_DIS,5: 100,7: PDAT8 $BWDSTART=FALSE PDAT_ACT=PPDAT8 FDAT_ACT=FP3 BAS(#PTP_PARAMS,100) PTPXP3C_DIS ;ENDFOLD ;FOLDLINP2CONTVel=2m/sCPDAT2Tool[1]Base[0];%{PE}%R8.3.40,%MKUKATPBASIS,%CMOVE,%VLIN,%P1: LIN,2: P2,3: C_DISC_DIS,5: 2,7: CPDAT2 $BWDSTART=FALSE LDAT_ACT=LCPDAT2 FDAT_ACT=FP2 BAS(#CP_PARAMS,2) LINXP2C_DISC_DIS ;ENDFOLD ;FOLDLINP1Vel=0.05m/sCPDAT1Tool[1]Base[0];%{PE}%R8.3.40,%MKUKATPBASIS,%CMOVE,%VLIN,%P1: LIN,2: P1,3: 5: 0.05,7: CPDAT1 $BWDSTART=FALSE LDAT_ACT=LCPDAT1 FDAT_ACT=FP1 BAS(#CP_PARAMS,0.05) LINXP1 ;ENDFOLD ;FOLDPTPHOMEVel=100%DEFAULT;%{PE}%R8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P1: PTP,2: HOME,3: 5: 100,7: DEFAULT $BWDSTART=FALSE PDAT_ACT=PDEFAULT FDAT_ACT=FHOME BAS(#PTP_PARAMS,100) $H_POS=XHOME PTPXHOME ;ENDFOLD mark: Search() INTERRUPTOFF1 WAITSEC0 XP4=$POS_ACT ;FOLDLINP4CONTVel=2m/sCPDAT10Tool[1]Base[0];%{PE}%R8.3.40,%MKUKATPBASIS,%CMOVE,%VLIN,%P1: LIN,2: P4,3: C_DISC_DIS,5: 2,7: CPDAT10 $BWDSTART=FALSE LDAT_ACT=LCPDAT10 FDAT_ACT=FP4 BAS(#CP_PARAMS,2) LINXP4C_DISC_DIS ;ENDFOLD Gripper_SetStatus(1,"O") LIN_REL{Z15} LIN_REL{Z-17} Gripper_SetStatus(1,"C") Part0InLeft=TRUE WAITSEC0 XP0=$POS_ACT XP0.Z=XP0.Z+25;看一下寻料程序到底是怎么运转的! ;FOLDLINP0CONTVel=0.025m/sCPDAT8Tool[1]Base[0];%{PE}%R8.3.40,%MKUKATPBASIS,%CMOVE,%VLIN,%P1: LIN,2: P0,3: C_DISC_DIS,5: 0.025,7: CPDAT8 $BWDSTART=FALSE LDAT_ACT=LCPDAT8 FDAT_ACT=FP0 BAS(#CP_PARAMS,0.025) LINXP0C_DISC_DIS ;ENDFOLD WAITSEC0 IFNOT$IN[10]THEN GOTOmark ENDIF ;FOLDLINP1CONTVel=2m/sCPDAT7Tool[1]Base[0];%{PE}%R8.3.40,%MKUKATPBASIS,%CMOVE,%VLIN,%P1: LIN,2: P1,3: C_DISC_DIS,5: 2,7: CPDAT7 $BWDSTART=FALSE LDAT_ACT=LCPDAT7 FDAT_ACT=FP1 BAS(#CP_PARAMS,2) LINXP1C_DISC_DIS ;ENDFOLD END DEFSearch() ;FOLDINI;%{PE} ;FOLDBASISTECHINI GLOBALINTERRUPTDECL3WHEN$STOPMESS==TRUEDOIR_STOPM() INTERRUPTON3 BAS(#INITMOV,0) ;ENDFOLD(BASISTECHINI) ;FOLDUSERINI ;Makeyourmodificationshere ;ENDFOLD(USERINI) ;ENDFOLD(INI) INTERRUPTON1 ;FOLDPTPP1CONTVel=100%PDAT6Tool[1]Base[0];%{PE}%R8.3.40,%MKUKATPBASIS,%CMOVE,%VPTP,%P1: PTP,2: P1,3: C_DIS,5: 100,7: PDAT6 $BWDSTART=FALSE PDAT_ACT=PPDAT6 FDAT_ACT=FP1 BAS(#PTP_PARAMS,100) PTPXP |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |